{
	This::clear();

	typename OtherMesh::ConstVertexIter  vIt(_rhs.vertices_begin()), 
		vEnd(_rhs.vertices_end());


	for (; vIt != vEnd; ++vIt)
		add_vertex(_rhs.point(vIt));


	typename OtherMesh::ConstFaceIter  fIt(_rhs.faces_begin()), 
		fEnd(_rhs.faces_end());
	std::vector<VertexHandle>          face_vhandles;
	////////////////////////////RADIOSITY MOD////////////////////////////////
	bool have_face_colors = _rhs.has_face_colors() && has_face_colors();
	bool have_face_normals = _rhs.has_face_normals() && has_face_normals();
	////////////////////////////RADIOSITY MOD////////////////////////////////

	for (; fIt != fEnd; ++fIt)
	{
		typename OtherMesh::ConstFaceVertexIter 
			fvIt=_rhs.cfv_iter(_rhs.handle(*fIt));

		face_vhandles.clear();

		for (; fvIt; ++fvIt)
			face_vhandles.push_back(fvIt.handle());

		////////////////////////////RADIOSITY MOD////////////////////////////////
		if(have_face_colors && have_face_normals)
		{
			FaceHandle fh = add_face(face_vhandles), rfh = _rhs.handle(*fIt);
			set_color(fh, _rhs.color(rfh));
			set_normal(fh, _rhs.normal(rfh));
		}
		else
			add_face(face_vhandles);
		////////////////////////////RADIOSITY MOD////////////////////////////////
	}

	return *this;
}
